var searchTable;
var menuLength = getLength("config_page_size");
var btnModel = '    \
	{{#each func}}\
    <button type="button" class="{{this.type}} btn-sm" onclick="{{this.fn}}">{{this.name}}</button>\
    {{/each}}';
var template = Handlebars.compile(btnModel);
var dataTableConfig = {
	"ordering" : false,// 排序
	"serverSide" : true,// 开启服务器模式
	"scrollX" : true,// 横向滚动
	ajax : {
		"type" : "POST",
		"url" : '../config/list',// 请求路径
		"contentType" : 'application/x-www-form-urlencoded; charset=UTF-8',
		"dataType" : "json",
		"data" : function(d) {// 查询参数
			d.code = $('#codeObj').val();
			return d;
		}
	},
	columns : [// 对应列
			{
				"data" : null,
				render : function(data, type, full, meta) {
					return '<input type="checkbox" value="' + data.id
							+ '" name="checkbox" />';
				}
			}, {
				"data" : "code",
				render : $.fn.dataTable.render.ellipsis(22, true)
			}, {
				"data" : "val",
				render : $.fn.dataTable.render.ellipsis(22, true)
			}, {
				"data" : "attra",
				render : function(data, type, full, meta) {
					if (data == 0) {
						return "否";
					} else {
						return "是";
					}
				}
			}, {
				"data" : "attrb",
				render : $.fn.dataTable.render.ellipsis(22, true)
			} ],
	"columnDefs" : [ {// 所有列默认值
		"targets" : "_all",
		"defaultContent" : ''
	} ],
	"dom" : 'rt<"floatl mt5"l><"floatl mt5"i><"floatr mt5"p><"clear">',// 生成样式
	"lengthMenu" : [ menuLength, menuLength ]
};
// 前台校验参数
var checkValidator = {
	message: 'This value is not valid',
    feedbackIcons: {
        valid: 'glyphicon glyphicon-ok',
        invalid: 'glyphicon glyphicon-remove',
        validating: 'glyphicon glyphicon-refresh',
        errorClass: "invalid"
    },
	fields : {
		code : {
			validators : {
				notEmpty : {
					message : '请输入参数名称'
				}
			}
		},
		val : {
			validators : {
				notEmpty : {
					message : '请输入参数值'
				}
			}
		}
	},
	submitHandler : function(validator, form, submitButton) {
		var id = submitButton.attr("id");
		if (id == "addBtn") {
			add();
		}
		if (id == "updateBtn") {
			update();
		}
	}

};
function resetValidator(){
	if($('#configForm').data('bootstrapValidator')){
		$('#configForm').data('bootstrapValidator').resetForm(false);
	}
}
// 查询，重新载入表格
function select() {
	$("#searchTable").dataTable().fnDraw(false)
}
//重置
function reset(){
	$('#codeObj').val("");
}
// 全反选
function selectAllorNot() {
	if ($("#checkAll").is(':checked')) {
		$("input[name='checkbox']").prop("checked", "checked");
	} else {
		$("input[name='checkbox']").removeProp("checked");
	}
}
// 获取选中记录
function getCheck() {
	var check = new Array();
	$('input[name="checkbox"]:checked').each(function() {
		check.push($(this).val());
	});
	return check;
}
// 展现修改区域
function toUpdate() {
	var check = new Array();
	check = getCheck();
	if (check.length == 0) {
		alertModel("请选中一条记录");
		return;
	}
	if (check.length > 1) {
		alertModel("请只选中一条记录");
	}
	$.post({
		url : "../config/selectOne/" + check[0],
		success : function(data) {
			$("#configList").hide();
			$("#configInfo").show();
			$("#updateBtn").show();
			for (col in data) {
				$('#configForm [name=' + col + ']').val(data[col]);
			}
		}
	})
}
// 修改
function update() {
	var info = $("#configForm").serialize();
	$.post({
		url : "../config/update",
		dataType : "json",
		data : info,
		success : function(data) {
			alertModel("保存成功");
			resetValidator();
			$("#configList").show();
			$("#configInfo").hide();
			$("#updateBtn").hide();
			select();
		}
	})
}
// 展现添加区域
function toAdd() {
	$("#configList").hide();
	$("#configInfo").show();
	$("#addBtn").show();
}
// 添加
function add() {
	var info = $("#configForm").serialize();
	$.post({
		url : "../config/addVal",
		dataType : "json",
		data : info,
		success : function(data) {
			alertModel("保存成功");
			resetValidator();
			$("#configList").show();
			$("#configInfo").hide();
			$("#addBtn").hide();
			select();
		}
	})
}
// 删除
function del() {
	var check = new Array();
	check = getCheck();
	if (check.length == 0) {
		alertModel("请选中至少一条记录");
		return;
	}
	confirmModel("是否要删除选中参数？", delConfig,check);
}
function delConfig(check) {
	$.post({
		url : "../config/del",
		contentType : "application/json", // 必须指定contentType
		data : JSON.stringify(check), // check是数组对象，必须转成数组字符串
		success : function(data) {
			alertModel("删除成功");
			select();
		}
	})
}

// 返回
function back() {
	$("#configList").show();
	$("#configInfo").hide();
	$("#addBtn").hide();
	$("#updateBtn").hide();
	resetValidator();
}
// 重置校验
function resetValidator() {
	$("#configForm")[0].reset();
	if ($('#configForm').data('bootstrapValidator')) {
		$('#configForm').data('bootstrapValidator').resetForm(false);
	}
}
$(function() {
	$("#searchTable").DataTable(dataTableConfig);
	if (null == $('#configForm').data('bootstrapValidator')) {
		$('#configForm').bootstrapValidator(checkValidator);
	}
})
